package main

import (
	"fmt"
	"math"
)

func main3() {
	arr := []int{101, 25, 37, 40, 5, 10, 19, 32}

	// 同时返回最大值和最小值
	max, min := getMaxMin(arr)
	fmt.Printf("max 物理地址, %p\n", &max)
	fmt.Printf("min 物理地址, %p\n", &min)

	fmt.Println("最大值为：", max)
	fmt.Println("最小值为：", min)
}

// 函数声明中的返回值，有两个——max和min
func getMaxMin(arr []int) (max int, min int) {
	// 初始化最大值
	max = 0
	// 初始化最小值
	min = math.MaxInt64

	for _, e := range arr {
		// 如果当前值大于max，则将max置为当前值
		if e > max {
			max = e
		}

		// 如果当前值小于min，则将min置为当前值
		if e < min {
			min = e
		}
	}

	fmt.Printf("max 物理地址, %p\n", &max)
	fmt.Printf("min 物理地址, %p\n", &min)

	return
}
